A Configurable System-on-Chip (CSoC) is a single-chip combination of an industry-standard microprocessor, embedded programmable logic, memory and a dedicated system bus. In addition to the processor, the CSoC may incorporate many dedicated system features including a cache memory, an external memory interface unit, and a DMA controller. These features are integrated with a dedicated configurable system interconnect (CSI) bus and embedded field programmable logic array (FPGA). This FPGA is also referred to as configurable system logic or CSL.
FIG. 1 is a block diagram illustrating an example of a prior art configurable system-on-chip (CSoC). The CSoC includes a CSL 110, a direct memory access (DMA) controller 125, a central processing unit (CPU) 105, and a CSI bus 100. The DMA controller 125 may have multiple DMA channels (e.g., four). Typically, the CPU 105 or the DMA controller 125 can master the CSI bus 100 while the CSL 110 cannot. The CSI bus 100 is connected with the DMA controller 125. The CSI bus 100 is also connected with the CSL 110, but the CSL 110 is only a slave on the CSI bus 100.
Bus mastering refers to a feature that enables a controller connected to the bus to communicate directly with other devices on the bus without going through the CPU. Most modern bus architectures support bus mastering because it improves performance.
Generally, there are bus signals driven to the CSL 110 containing addresses, and there are bus signals coming from the CSL 110 containing data. Although the CSL 110 is capable of providing data, it is not capable of specifying addresses, direction of data or transaction size. The CSL 110 can send or receive data through transactions with the DMA controller 125. The DMA controller 125 acts as the bus master of the CSI bus 100. For a particular DMA channel, transactions between the CSL 110 and the DMA controller 125 are carried out in one direction and in one transaction size (e.g., 8, 16 or 32 bits). In addition, the address of the transactions follow a fixed pattern, incrementing, decrementing, or starting at the same address. The CSL does not have the ability to specify addresses.